<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>object.defineProperty</title>
    <!--导入js package-->
    <script type="text/javascript" src="../01-vue_js/vue.js"></script>
</head>
<body>

<script type="text/javascript">
    let number = 18
    let person = {
        name: 'zhangsan',
        sex: '男',
    }
    Object.defineProperty(person, 'age', {
        // value: 18,
        // enumerable: true,  //控制属性是否可以被枚举默认值是false
        // writable: true,     //控制属性是否被修改 默认值是false
        // configurable: true,  // 控制属性是否可以被删除，默认值是false
        // 当有人读取person的age属性时，getter函数就会被调用，且返回值就是age的值
        get() {
            console.log("有人读取了age属性")
            return number
        },
        // 当有人修改person的age属性时，set函数(setter)就会被调用，且会收到修改的具体值
        set(value) {
            console.log("有人修改了age属性,且值是",value)
            number=value
        }
    })
    console.log(person)
</script>

</body>
</html>